package cn.wolfcode.luowowo.redis.srevice;

import cn.wolfcode.luowowo.domain.UserInfo;
import cn.wolfcode.luowowo.redis.StrategyStatisVO;

import java.util.List;

public interface IStrategyRedisSrevice {
    
    /**
     * 增加统计方法的类
     *
     * @param sid
     */
    void increaseStrategyStatis(String sid, int num);
    
    /**
     * 获取统计方法的类
     *
     * @param sid
     * @return
     */
    StrategyStatisVO getStrategyStatis(String sid);
    
    /**
     * 设置统计数据到redis类
     *
     * @param vo 需要设置到redis
     * @return
     */
    void setStrategyStatis(StrategyStatisVO vo);
    
    /**
     * 通过攻略的 id增加攻略的评论数量
     *
     * @param strategyId
     */
    void increaseStrategyCommentStatis(String strategyId);
    
    /**
     * 判断收藏的攻略是否存在用户的收藏集合中
     *
     * @param sid 攻略id
     * @param id  用户的id
     * @return
     */
    Boolean strategyFavornumStatis(String sid, String id);
    
    /**
     * 返回一个用户的攻略id集合
     *
     * @param userId
     * @return
     */
    List<String> userCollectList(String userId);
    
    /**
     * 顶的操作与数据的增加
     *
     * @param sid
     * @param id
     * @return true:顶成功了  false:今天的顶用完了
     */
    Boolean saveThumbsupnum(String sid, String id);
    
    /**
     * 判断该攻略id是否存在于redis中
     *
     * @param id
     * @return true:存在 跳过循环  false:不存在 继续循环
     */
    boolean isStrategyKey(String id);
    
    /**
     * 分享微博添加成功次数
     * @param sid   攻略的id
     * @return  true:分享成功  false: 分享失败
     */
    Boolean saveSharenum(String sid);
    
    /**
     * 查询所有的拥有指定的前缀的key的value
     * @return
     */
    List<StrategyStatisVO> selectStrategyVoByPrefix();
    
}
